package com.server;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

//负责服务器启动的时候，一次性读取配置文件的信息，这个对象不需要重复的创建
public class MyServerReader {
    //用来存储文件的信息
    private static Map<String, String> map = new HashMap();

    //类启动的时候优先加载，并且只加载一次
    static {
        try {
            //这里进行了优化：配置文件只需要加载一次就够了，不用每次启动的时候都创建一个读取文件的对象，让其变成一个单例的对象
            //读取配置文件，通过请求名得到真实的类全名 （读取流文件）
            //通过prop集合里面读取出来的文件记录，找寻类全名
            Properties properties = new Properties();
            InputStream inputStream = new FileInputStream("src/web.properties");
            properties.load(inputStream);
            Enumeration<?> enumeration = properties.propertyNames(); //获取迭代器信息
            if (enumeration.hasMoreElements()) {
                String key = (String) enumeration.nextElement();
                String value = properties.getProperty(key);
                map.put(key, value);
            }
            System.out.println("配置文件web.properties文件夹读取完毕");
            inputStream.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    //提供一个获取map集合中的方法
    public static String getValue(String key) {
        return map.get(key);
    }
}
